// app/controller/home.js
const Controller = require('egg').Controller

class HomeController extends Controller {
  async index() {
    // Application
    // 定义：Application 是全局应用对象，在一个应用中，只会实例化一个，它继承自 Koa.Application，在它上面我们可以挂载一些全局的方法和对象
    // Koa 中的 Application
    // Egg 中获取 Application 的方式
    // 扩展 Application
    // console.log(this.app.foo)

    // Context 对象
    // 定义：Context 是一个请求级别的对象，继承自 Koa.Context。在每一次收到用户请求时，框架会实例化一个 Context 对象，这个对象封装了这次用户请求的信息，并提供了许多便捷的方法来获取请求参数或者设置响应信息。
    // Context 对象的获取方式
    // console.log(this.ctx.req.url)
    // console.log(this.ctx.req.method)
    // console.log(this.ctx.url)
    // console.log(this.ctx.method)
    // console.log(this.ctx.request)

    // Controller
    // 定义：负责解析用户的输入，处理后返回相应的结果。框架推荐 Controller 层主要对用户的请求参数进行处理（校验、转换），然后调用对应的 service 方法处理业务，得到业务结果后封装并返回。
    // console.log(this.config.foo)

    // 操作数据库获取文章列表
    const articles = this.service.home.getArticles()

    // this.logger.debug('hello')
    // this.ctx.logger.error('hello world')
    // this.logger.info('aaa')
    this.ctx.logger.debug('111')

    this.ctx.body = articles


    // 发送响应数据
    // this.ctx.body = 'Hello world'
  }

  async about () {
    this.ctx.body = 'about'
  }
}

module.exports = HomeController
